package demo7;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Demo {
    public static void main(String[] args) {
        /*
            实例化容器时，容器的初始化会进行的操作:
            1:扫描指定的包(包含子孙包)，并将具有@Component(还有一些注解)注解的类创建对象(1:对象实例化)，并放入容器中。
            2:进行对象的属性初始化(2:对象属性赋值)
            3:如果对象关注自身是否被容器初始化完毕，可以单独实现接口(InitializingBean)以及对应的方法
              此时如果容器将其初始化完毕后(进行完前面两步)则会调用该方法通知当前对象
         */
        System.out.println("正在初始化Spring容器");
        AnnotationConfigApplicationContext context
                = new AnnotationConfigApplicationContext("demo7");
        System.out.println("Spring容器初始化完毕");

        Person person = context.getBean(Person.class);
        person.sayHello();

        System.out.println("正在关闭Spring容器");
        context.close();
        System.out.println("Spring容器已关闭");
    }
}
